package com.tangoj.model.vo;

import lombok.Data;

import java.math.BigDecimal;

/**
 * 用户排行榜
 */
@Data
public class UserRankVO {

    private Long id;

    private String userName;

    private String userAccount;

    private String userAvatar;

    /**
     * 通过数
     */
    private Long acCount;

    /**
     * 提交数
     */
    private Long subCount;

    /**
     * 通过率 %号
     */
    private String throughput;

    public String getThroughput() {
        return calculateThroughput()+"%";
    }

    /**
     * 计算通过率（可以改为静态方法，如果不需要依赖实例状态）
     *
     * @return 通过率（百分比形式）
     */
    public BigDecimal calculateThroughput() {
        if (subCount == null || subCount == 0) {
            return BigDecimal.ZERO; // 如果提交数为0或null，则通过率为0%
        }
        BigDecimal acCountBigDecimal = BigDecimal.valueOf(acCount);
        BigDecimal subCountBigDecimal = BigDecimal.valueOf(subCount);
        return acCountBigDecimal.divide(subCountBigDecimal, 1, BigDecimal.ROUND_DOWN)
                .multiply(BigDecimal.valueOf(100)); // 保留3位小数并乘以100得到百分比形式
    }

}
